'use strict'

module.exports = {
    // 取随机rgb颜色
    getRandomColor() {
        let rgb = [255, 7, Math.random() * 256]
        rgb.sort(function() {
            return 0.5 - Math.random()
        })
        return rgb
    },

    // 取范围内的随机数
    getRandomRange(a, b) {
        return a + Math.random() * (b - a + 1) + a
    },

    // 将rgb数组转化为rgb字符串
    colorToString(rgb) {
        return `rgb(${rgb.join(",")})`
    },

    /**
     * 检测圆形和矩形是否相交，用于判断指定球球是否在玩家视野内
     * @param rectTopLeft 矩形左上角
     * @param rectBottomRight 矩形右下角
     * @param circlePos 圆心坐标
     * @param radius 圆形半径
     */
    checkOverlap(rectTopLeft, rectBottomRight, circlePos, radius) {
        let dx = rectTopLeft.x > circlePos.x ? rectTopLeft.x - circlePos.x : rectBottomRight.x < circlePos.x ? circlePos.x - rectBottomRight.x : 0
        let dy = rectTopLeft.y > circlePos.y ? rectTopLeft.y - circlePos.y : rectBottomRight.y < circlePos.y ? circlePos.y - rectBottomRight.y : 0
        return dx * dx + dy * dy <= radius * radius
    },

    massToRadius(mass) {
        return Math.sqrt(mass / Math.PI)
    }
};